From: Matthias Clasen Date: Sat, 5 Mar 2016 04:50:50 +0000 (-0500) Subject: a11y: Expose window type hint as attribute X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~2661 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=2b1fc6166c626601c07e2e2e19235c74b0174672;p=gtk%2B3.0.git a11y: Expose window type hint as attribute This was an old request, maybe still useful. https://bugzilla.gnome.org/show_bug.cgi?id=468122 --- diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c index 83bb05bb0f..017f130d56 100644 --- a/gtk/a11y/gtkwindowaccessible.c +++ b/gtk/a11y/gtkwindowaccessible.c @@ -315,6 +315,40 @@ gtk_window_accessible_ref_child (AtkObject *object, return g_object_ref (gtk_widget_get_accessible (ref_child)); } +static AtkAttributeSet * +gtk_widget_accessible_get_attributes (AtkObject *obj) +{ + GtkWidget *window; + GdkWindowTypeHint hint; + AtkAttributeSet *attributes; + AtkAttribute *attr; + GEnumClass *class; + GEnumValue *value; + + attributes = ATK_OBJECT_CLASS (gtk_window_accessible_parent_class)->get_attributes (obj); + + attr = g_new (AtkAttribute, 1); + attr->name = g_strdup ("window-type"); + + window = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); + hint = gtk_window_get_type_hint (GTK_WINDOW (window)); + + class = g_type_class_ref (GDK_TYPE_WINDOW_TYPE_HINT); + for (value = class->values; value->value_name; value++) + { + if (hint == value->value) + { + attr->value = g_strdup (value->value_nick); + break; + } + } + g_type_class_unref (class); + + attributes = g_slist_append (attributes, attr); + + return attributes; +} + static void gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass) { @@ -331,6 +365,7 @@ gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass) class->focus_event = gtk_window_accessible_focus_event; class->get_n_children = gtk_window_accessible_get_n_children; class->ref_child = gtk_window_accessible_ref_child; + class->get_attributes = gtk_widget_accessible_get_attributes; } static void